iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0
Software Development

ASP.NET MVC基礎修練:從菜開始系列 第 29

Day-29 ASP.NET MVC 之 GridView 查詢與複選框checkbox

  • 分享至 

  • xImage
  •  

查詢功能

在前端 cshtml 先做查詢元件
這邊就對使用者做模糊查詢

https://ithelp.ithome.com.tw/upload/images/20231014/20106640NM5wsOmxEq.jpg
程式碼如下:

@using (Html.BeginForm("Index", "Employee", FormMethod.Post))
    {
        <input type="text" name="name" placeholder="輸入使用者名稱" />
        <input type="submit" value="查詢" />
    }

後端的很簡單就是把原本的 public ActionResult Index() 加一個參數
程式碼如下

  public ActionResult Index(string name)
        {
            string sql = " Select *  From Employee";
            if (!string.IsNullOrEmpty(name))
            {
                sql = $"select  *  from Employee where username like '%{name}%'";
            }
   
            DBHelper db = new DBHelper();

        
    SqlDataReader sqlDataReader = db.GetSqlDataReader(sql);
         
            List<Employee> Employee = new List<Employee>();

            while (sqlDataReader.Read())
            {
                Employee.Add(new Employee
                {
                    id = sqlDataReader.GetInt32(0),
                    LoginID = sqlDataReader.GetString(1),
                    Username = sqlDataReader.GetString(2),
                    Gender = sqlDataReader.GetString(3),
                    PhoneNumber = sqlDataReader.GetString(4)
                 
                });
            }

            sqlDataReader.Close();
            
            return View(Employee);
        }

執行畫面如下
https://ithelp.ithome.com.tw/upload/images/20231014/20106640G0X1RgnKzH.jpg

複選框 CheckBox

前端 cshtml 程式如下

<table class="gridview">
        <tr>
            <th>  <input type="checkbox" id="selectAll" /></th>
            <th>帳號</th>
            <th>使用者名稱</th>
            <th>性別</th>
            <th>電話號碼</th>
            <th></th>
            <th></th>
            <th></th>
        </tr>

        @foreach (var item in Model)
        {
            <tr class="table-row">
                <td>
                    <input type="checkbox" name="selectedItems" value="@item.id" />
                </td>
                <td>@Html.DisplayFor(modelItem => item.LoginID)</td>
                <td>@Html.DisplayFor(modelItem => item.Username)</td>
                <td>@Html.DisplayFor(modelItem => item.Gender)</td>
                <td>@Html.DisplayFor(modelItem => item.PhoneNumber)</td>
                <td>@Html.ActionLink("詳細資料", "Details", new { id = item.id })</td>
                <td>@Html.ActionLink("編輯", "Edit", "Employee", new { id = item.id }, null)</td>
                <td>@Html.ActionLink("删除", "Delete", new { id = item.id }, new { @class = "btn btn-danger", onclick = "return confirm('您确定要删除吗?');" })</td>
            </tr>
        }

    </table>

重點在下圖紅框部分
https://ithelp.ithome.com.tw/upload/images/20231014/20106640XoAVMKsL4x.jpg

控制全選與取消全選的部分

   <script src="~/Scripts/jquery-3.4.1.min.js"></script>

    <script type="text/javascript">
        $(document).ready(function () {
          
            $('#selectAll').change(function () {
                var isChecked = $(this).prop('checked');
             
                var checkboxes = $('input[name="selectedItems"]');

                if (isChecked) {
              
                    checkboxes.prop('checked', true);
                } else {
                  
                    checkboxes.prop('checked', false);
                }
            });
        });
    </script>

要引入 <script src="~/Scripts/jquery-3.4.1.min.js"></script>
執行畫面如下
https://ithelp.ithome.com.tw/upload/images/20231014/201066400Ihn9co627.jpg

勾選抬頭的 checkbox
GridView 的就會全部勾選了
https://ithelp.ithome.com.tw/upload/images/20231014/2010664032DLPrCHwt.jpg


上一篇
Day-28 ASP.NET MVC 之 GridView 詳細資料與刪除功能
下一篇
Day-30 ASP.NET MVC 之 GridView 匯出Excel
系列文
ASP.NET MVC基礎修練:從菜開始30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言